﻿namespace Home.Security.Authentication
{
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    public class AuthorizationCodeResult : AuthenticationResult
    {
        internal AuthorizationCodeResult(AuthenticationParameter parameter)
            : base(parameter.Id, parameter.TrackId, parameter.AuthenticationType)
        {
            Debug.Assert(parameter != null);

            this.AuthenticationParameter = parameter;
        }

        public string AuthorizationCode { get; internal set; }

        public AuthenticationStatus AuthenticationStatus { get; internal set; }

        public string CallbackUri { get; internal set; }

        internal AuthenticationParameter AuthenticationParameter { get; private set; }
    }
}
